#ifndef CNSCOMDEFINITION_H
#define CNSCOMDEFINITION_H

#include "cnsMacroGlobal.h"
#include <QString>
#include <QSharedPointer>
#include "cnsRootComDefinition.h"

//defPath suport these formats below:
//defPath=filename[/ns*/n]*/namespace/defName
//defPath=filename[/ns*/n]*//defName
//objPath that with defPath suport these formats below:
//objPath=objName
//objName=nullptr
//namespace=namespace
//namespace=nullptr
class CnsComObjDefinition : public QObject, public CnsRootComDefinition
{
    Q_OBJECT
public:
    CnsComObjDefinition(const QString *dirFullPath):QObject(nullptr),
        CnsRootComDefinition(dirFullPath)
    {
    }

    const QString *getDefFullPath(CnsDefaultComFactory *registry) noexcept;

    virtual ~CnsComObjDefinition(){}
};

CNS_DECL_METATYPE(CnsComObjDefinition)

#endif
